package com.aabte.commons.redis;

import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisShardInfo;

import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLParameters;
import javax.net.ssl.SSLSocketFactory;
import java.net.URI;

/**
 * @author Daniel
 * @version 1.0
 * @date 2020/3/21
 */
public class JedisAdapter extends Jedis implements RedisAdapter {
  public JedisAdapter() {}

  public JedisAdapter(String host) {
    super(host);
  }

  public JedisAdapter(HostAndPort hp) {
    super(hp);
  }

  public JedisAdapter(String host, int port) {
    super(host, port);
  }

  public JedisAdapter(String host, int port, boolean ssl) {
    super(host, port, ssl);
  }

  public JedisAdapter(
      String host,
      int port,
      boolean ssl,
      SSLSocketFactory sslSocketFactory,
      SSLParameters sslParameters,
      HostnameVerifier hostnameVerifier) {
    super(host, port, ssl, sslSocketFactory, sslParameters, hostnameVerifier);
  }

  public JedisAdapter(String host, int port, int timeout) {
    super(host, port, timeout);
  }

  public JedisAdapter(String host, int port, int timeout, boolean ssl) {
    super(host, port, timeout, ssl);
  }

  public JedisAdapter(
      String host,
      int port,
      int timeout,
      boolean ssl,
      SSLSocketFactory sslSocketFactory,
      SSLParameters sslParameters,
      HostnameVerifier hostnameVerifier) {
    super(host, port, timeout, ssl, sslSocketFactory, sslParameters, hostnameVerifier);
  }

  public JedisAdapter(String host, int port, int connectionTimeout, int soTimeout) {
    super(host, port, connectionTimeout, soTimeout);
  }

  public JedisAdapter(String host, int port, int connectionTimeout, int soTimeout, boolean ssl) {
    super(host, port, connectionTimeout, soTimeout, ssl);
  }

  public JedisAdapter(
      String host,
      int port,
      int connectionTimeout,
      int soTimeout,
      boolean ssl,
      SSLSocketFactory sslSocketFactory,
      SSLParameters sslParameters,
      HostnameVerifier hostnameVerifier) {
    super(
        host,
        port,
        connectionTimeout,
        soTimeout,
        ssl,
        sslSocketFactory,
        sslParameters,
        hostnameVerifier);
  }

  public JedisAdapter(JedisShardInfo shardInfo) {
    super(shardInfo);
  }

  public JedisAdapter(URI uri) {
    super(uri);
  }

  public JedisAdapter(
      URI uri,
      SSLSocketFactory sslSocketFactory,
      SSLParameters sslParameters,
      HostnameVerifier hostnameVerifier) {
    super(uri, sslSocketFactory, sslParameters, hostnameVerifier);
  }

  public JedisAdapter(URI uri, int timeout) {
    super(uri, timeout);
  }

  public JedisAdapter(
      URI uri,
      int timeout,
      SSLSocketFactory sslSocketFactory,
      SSLParameters sslParameters,
      HostnameVerifier hostnameVerifier) {
    super(uri, timeout, sslSocketFactory, sslParameters, hostnameVerifier);
  }

  public JedisAdapter(URI uri, int connectionTimeout, int soTimeout) {
    super(uri, connectionTimeout, soTimeout);
  }

  public JedisAdapter(
      URI uri,
      int connectionTimeout,
      int soTimeout,
      SSLSocketFactory sslSocketFactory,
      SSLParameters sslParameters,
      HostnameVerifier hostnameVerifier) {
    super(uri, connectionTimeout, soTimeout, sslSocketFactory, sslParameters, hostnameVerifier);
  }
}
